안드로이드에서 데이터베이스를 열지 못할때. [안드로이드,데이타베이스,DB,database,android]

이미지출처 : news.cnet.com

안드로이드에서 데이터베이스를 열지 못할때.








안드로이드를 사용해서 뭔가 만들어보려고 뚝딱거리다가,



어느순간 m5버젼이 나왔다.



m3버젼을 쓰고 있었는데, m5버젼이 나왔다.



돌아가는 모습을 좀 보려고 튜토리얼을 실행시켰는데.. 이런!



데이터베이스를 열지 못한다. nullPointerException이 나온다.



프로그램을 처음 접했을 때부터 무던히도 날 괴롭히던 녀석이..



여기서도 어김없이 등장했다.



디버깅 모드를 써서 추적을 해봐도..



추적이 쉽지않다.



결국 추적을 위해 비슷한 어플리케이션을 만들어서..



아직 api 소스가 나오지도 않았기에 역컴파일까지 해서 추적을 했더니…



db를 쓰지도 못하고 읽지도 못하는것 아닌가!



그래서 db에 null값이 들어있기 때문에 이런 현상이 발생하는 것이었다.



이런! 이 문제를 어떻게 해결할 것인가..



이건 코드 레벨에서 어찌 할 수 있는 문제가 아니었다.



방법은..



기존에 있던 유저파일을 리셋하는것이다.



에뮬레이터 실행할때.



-wipe-data 옵션을 줘서 유저데이터를 지울 수 있고,



혹은 아래의 경로에서 직접 삭제 할 수 있다.


Code:





Linux: ~/.android/userdata.img

Windows: C:\Documents and Settings\<loginname>\Application

Data\Local\Android\userdata.img


Upgrading the SDK 문서가 좀 더 일찍 나왔더라면 이런 수고는 하지 않았을텐데 아쉽다.



Reference